Currently, expert system shells are employed to provide a framework in which users construct expert systems for, inter alia, protecting and managing assets including machinery.
Typically, and in essence, a developer constructs an expert system by first employing an expert system shell for building an application by creating a graphic model of the system, which essentially results in a schematic diagram of the application. Rules are then written in a computer language for the application and contain an expert's knowledge of what the expert system should conclude and how it should respond to a given set of conditions: what to conclude from trends, how to determine a failure, what actions to take to minimize loss and maximize safety and productivity, and so forth.
One exemplary expert system is that which is sold under the name Machine Condition Manager™ 2000 by, the assignee of the present application, Bently Nevada Corporation of Minden, Nev. This system has the powerful ability to, inter alia, allow new attributes and rule sets to be appended thereto and represents a new paradigm for automated diagnostic and machinery information management. Please see the commonly assigned U.S. Pat. No. 5,905,989, filed Nov. 27, 1996 of Biggs, entitled “Knowledge manager Relying On A Hierarchical Default Expert System: Apparatus and Method,” which is hereby incorporated by reference in its entirety.
Notwithstanding, new or custom rules that need to be written for an expert system require a user to author them in a computer language, which makes writing new rules very difficult. Typically, rules are written in a text, with the help of a text editor. A parser converts the text into symbols that are then sent to an interpreter or compiler in order to obtain a resultant rule. Thus, the user must learn the computer language in which the rules are to be written for each particular expert system and, in addition, the user must learn and understand the way previous rules, where written for that particular expert system. This is a large time investment before a single rule can be written. The creation of rules that are not syntactically correct is ubiquitous even with the computer language learned and the expert system understood.
Additionally, some type of wizard interface may be employed to ask questions and then write code from the answers. However, this is still problematic in that text has to be parsed in order for it to be converted into symbols that are then sent to an interpreter or compiler in order to obtain a resultant rule and the user may still have to understand the way previous rules where written.
Accordingly, there is a need for a system and method that allows users of rule based expert systems to be able to easily write their own additional rules without having to learn a computer language and without understanding how any particular expert system works. Additionally, there is a need for a system and method that allows users of rule based expert systems to be able to easily write their own additional rules without effecting the execution of other rules in the expert system. Furthermore, there is need for a system and method that eliminates the possibility of creating custom rules that are not syntactically correct and thus, not valid for execution. Heretofore, the approach to writing rules was to let users create anything they wanted and then give them a list of errors that needed to be interpreted, edited, parsed and compiled until a valid rule was obtained. Moreover, there is a need for a system and method that decreases the time spent on creating and processing custom rules.